package com.tao.YanMoDesignPattern.factory.factoryMethod.case2;

import com.tao.YanMoDesignPattern.factory.factoryMethod.case1_withFactoryMethod.ExportDB;
import com.tao.YanMoDesignPattern.factory.factoryMethod.case1_withFactoryMethod.ExportFileApi;
import com.tao.YanMoDesignPattern.factory.factoryMethod.case1_withFactoryMethod.ExportTXTfile;

/**
 * @Author Mi_Tao
 * @Date 2023/7/24
 * @Description 参数化，不再抽象
 * @Version 1.0
 **/
public class ExportOperate {

    public boolean export(int type,String data){
        // 使用工厂方法
        ExportFileApi api = factoryMethod(type);
        return api.export(data);
    }


    /**
     * 工厂方法
     *
     * @param type 用户选择导出类型
     * @return {@link ExportFileApi}
     */
    protected ExportFileApi factoryMethod(int type){
        ExportFileApi api = null;
        if (type ==1){
            api = new ExportTXTfile();
        }else if (type ==2){
            api = new ExportDB();
        }
        return api;
    }
}
